Field of the Invention
One disclosed aspect of the embodiments relates to a technique for adjusting a resource amount of resources included in a processing system when the processing system is switched.
Description of the Related Art
In recent years, there has been a cloud service as a service allowing a user to use various kinds of applications running on a server existing on the Internet. In the cloud service such as an Infrastructure as a Service (IaaS) and a Platform as a Service (PaaS), a cloud service vendor provides a resource such as a virtual machine and a storage to a system administrator via a network. The virtual machine is a logical computer established by dividing a server by a logical unit irrespective of a physical configuration with use of a virtualization technique, and configured in such a manner that each logical computer operates while having an independent operating system. The system administrator can construct a system for providing an individual service with use of the resource such as the virtual machine and the storage provided by the cloud service vendor.
The system constructed with use of the cloud service can automatically adjust a resource amount based on an amount of received requests and a load for processing these requests according to a setting arbitrarily made by the system administrator. For example, Japanese Unexamined Patent Application Publication (Translation of PCT Application) No. 2013-543171 discusses an auto-scaling function of automatically allocating a resource necessary to execute a program, and changing the allocated resource after the execution of the program is started.
Such processing for adjusting the resource amount is performed by a resource manager prepared in the cloud service. The amount of requests means the number of requests received by a load balancer per unit time. The load for processing means a load imposed for processing in the virtual machine, and refers to a central processing unit (CPU) usage rate and a memory usage rate, a time taken to return a response, and the like of the virtual machine. The adjustment of the resource amount includes, for example, scaling-out, which increases the number of virtual machines, and scaling-up, which increases an allocation of hardware resources to the virtual machine. Further, the adjustment of the resource amount also includes scaling-in, which reduces the number of virtual machines, and scaling-down, which reduces the allocation of the hardware resources to the virtual machine. The hardware resources are a CPU, a memory, the storage, and the like. Further, the load balancer can also automatically carry out the scaling-out and the like based on the amount of received requests.
Further, in recent years, a technique called a Blue-Green deployment has been used sometimes, at the time of, for example, a version upgrade of the system constructed with use of the above-described cloud service. The version upgrade of the system includes, for example, a version upgrade of an application executed on the virtual machine in the system. The system after the version upgrade is equipped with an additional function that the system can provide, and/or is changed in type and/or format of data that the system manages.
Now, the Blue-Green deployment will be described.
First, a processing system as a released production environment, which is currently in charge of receiving requests from an external network and processing these requests, is operating in the cloud service. The processing system includes at least one or more virtual machines configured to process the requests, and the load balancer that functions as a load distribution device configured to distribute the requests to the virtual machines. Then, when it is desired to upgrade the version of this processing system, a processing system after the version upgrade that is different from the processing system of the current version is further constructed in the cloud service. After that, once it has come to a timing when it is desired to upgrade the version, for example, a setting of a connection destination indicating a target of the transmission of the requests from the external network is changed in the cloud service, by which the processing system serving as the released production environment is switched. At this time, the released production environment is switched to the processing system after the version upgrade. The version upgrade of the system is realized by this switching.
The processing system in which the above-described system of the current version is in operation, i.e., the processing system before the switching is called a Blue environment. On the other hand, the processing system in which the above-described system after the version upgrade is constructed, i.e., the processing system after the switching is called a Green environment. Hereinafter, the Blue environment and the Green environment may be referred to as a first processing system and a second processing system, respectively.
The switching of the processing system by the Blue-Green deployment can be also used in a situation other than the above-described version upgrade of the system. For example, this switching can be used when the environment that processes the requests is switched from a processing system where a failure or a bug occurs (in this case, the first processing system) to another normally operating processing system (in this case, the second processing system).
A system such as the above-described system may be, for example, planned to be upgraded several times in a day. For such a system, because a next timing for the version upgrade comes soon, it is difficult to carry out the above-described switching of the processing system in consideration of a transition of the amount of requests and the like.
Further, it may be impossible to largely postpone a date when the system of the new version will be released, in view of a system operation. Therefore, even at the moment that a large number of requests are received from the external network and a heavy load for the processing is imposed on the first processing system, the processing for switching the processing system that processes these requests may have to be performed for the version upgrade or the like.
When the load for the processing regarding the requests imposed on the first processing system is large, the above-described resource manager performs the adjustment processing so that a large number of resources are provided to the load balancer or the like that processes the requests in the first processing system. On the other hand, the processing for adjusting the resources is not performed by the resource manager in the second processing system that is prepared in advance in anticipation of the switching for the version upgrade, because the second processing system does not yet receive the requests from the external network and does not process the received requests.
Further, the second processing system prepared in advance may include a relatively small resource amount in a case where the system administrator takes into consideration saving cost to maintain the system. Performing the above-described switching processing under such a situation results in the second processing system receiving a large number of requests at once. Then, a possible consequence therefrom is that the second processing system falls behind in processing the requests if the resource manager cannot perform the processing for adjusting the resources in time.